﻿//微信转发、分享朋友圈
    function isWeiXin() {
        var ua = window.navigator.userAgent.toLowerCase();
        if (ua.match(/MicroMessenger/i) == "micromessenger") {
            return true;
        } else {
            window.wx = {
                chooseImage: function () { alert("请在微信中使用该功能"); },
                uploadImage: function () { alert("请在微信中使用该功能"); },
                closeWindow: function () { window.close(); }
            };

            return false;
        }
    }

var appid = 'wx9fd94f102cc76e9c';

var imgUrl = "";
var lineLink = "";
var descContent = "";
var shareTitle = "";

//sType      0：浏览次数 1：分享朋友圈次数 2：分享给朋友次数
function refreshPageStatistics(sType) {
    $.ajax({
        type: "POST",
        url: "http://m.mycaigou.com/WeiXin/AjaxHandler.ashx?method=RefreshPageStatistics&rdm=" + Math.random()+"&token=wxycg",
        data: { usage: sType, title: document.title, urlpath: window.document.location.href },
        dataType: "json",
        success: function (result) {
            //alert(JSON.stringify(result));         
        },
        error: function () {
        }
    });
}

function wxReady(imgSrc, lineLink1, descContent1, shareTitle1) {
    // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
    wx.onMenuShareTimeline({
        title: shareTitle1, // 分享标题
        link: lineLink1, // 分享链接
        imgUrl: imgSrc, // 分享图标
        success: function () {
            // 用户确认分享后执行的回调函数
            refreshPageStatistics("1");
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });

    wx.onMenuShareAppMessage({
        title: shareTitle1, // 分享标题
        desc: descContent1, // 分享描述
        link: lineLink1, // 分享链接
        imgUrl: imgSrc, // 分享图标
        type: '', // 分享类型,music、video或link，不填默认为link
        dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
        success: function () {
            // 用户确认分享后执行的回调函数
            refreshPageStatistics("2");
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        },
        fail: function (res) {
            //alert(JSON.stringify(res));
        }
    });

    wx.onMenuShareWeibo({
        title: shareTitle1, // 分享标题
        desc: descContent1, // 分享描述
        link: lineLink1, // 分享链接
        imgUrl: imgSrc, // 分享图标
        trigger: function (res) {
        },
        complete: function (res) {
        },
        success: function (res) {
        },
        cancel: function (res) {
        },
        fail: function (res) {
            //alert(JSON.stringify(res));
        }
    });
}

function initWxConfig(imgSrc, lineLink1, descContent1, shareTitle1) {
    if (isWeiXin()) {
        var iError = 0;
        $.ajax({
            type: "post",
            url: "http://m.mycaigou.com/WeiXin/PublicData.aspx?rdm=" + Math.random()+"&token=wxycg",
            async: false,
            beforeSend: function () {
            },
            data: { link: window.document.location.href },
            dataType: 'json',
            success: function (data) {
                if (data == "" || data == undefined) {
                    alert("分享签名获取失败");
                } else {
                    appid = data.appid;
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        appId: appid, // 必填，公众号的唯一标识
                        timestamp: data.timestamp, // 必填，生成签名的时间戳
                        nonceStr: data.noncestr, // 必填，生成签名的随机串
                        signature: data.signature,// 必填，签名，见附录1
                        jsApiList: ['checkJsApi',
                                    'onMenuShareTimeline',
                                    'onMenuShareAppMessage',
                                    'onMenuShareQQ',
                                    'onMenuShareWeibo',
                                    'hideMenuItems',
                                    'showMenuItems',
                                    'hideAllNonBaseMenuItem',
                                    'showAllNonBaseMenuItem',
                                    'translateVoice',
                                    'startRecord',
                                    'stopRecord',
                                    'onRecordEnd',
                                    'playVoice',
                                    'pauseVoice',
                                    'stopVoice',
                                    'uploadVoice',
                                    'downloadVoice',
                                    'chooseImage',
                                    'previewImage',
                                    'uploadImage',
                                    'downloadImage',
                                    'getNetworkType',
                                    'openLocation',
                                    'getLocation',
                                    'hideOptionMenu',
                                    'showOptionMenu',
                                    'closeWindow',
                                    'scanQRCode',
                                    'chooseWXPay',
                                    'openProductSpecificView',
                                    'addCard',
                                    'chooseCard',
                                    'openCard'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                    });
                    wx.ready(function () { wxReady(imgSrc, lineLink1, descContent1, shareTitle1); });

                    wx.error(function (res) {
                        if (iError == 0) {
                            // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
                            $.ajax({
                                type: "POST",
                                url: "http://m.mycaigou.com/WeiXin/PublicData.aspx?isclear=1&rdm=" + Math.random()+"&token=wxycg",
                                data: { link: window.document.location.href },
                                dataType: "json",
                                success: function (result) {
                                    appid = result.appid;
                                    wx.config({
                                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                                        appId: appid, // 必填，公众号的唯一标识
                                        timestamp: result.timestamp, // 必填，生成签名的时间戳
                                        nonceStr: result.noncestr, // 必填，生成签名的随机串
                                        signature: result.signature,// 必填，签名，见附录1
                                        jsApiList: ['checkJsApi',
                                                    'onMenuShareTimeline',
                                                    'onMenuShareAppMessage',
                                                    'onMenuShareQQ',
                                                    'onMenuShareWeibo',
                                                    'hideMenuItems',
                                                    'showMenuItems',
                                                    'hideAllNonBaseMenuItem',
                                                    'showAllNonBaseMenuItem',
                                                    'translateVoice',
                                                    'startRecord',
                                                    'stopRecord',
                                                    'onRecordEnd',
                                                    'playVoice',
                                                    'pauseVoice',
                                                    'stopVoice',
                                                    'uploadVoice',
                                                    'downloadVoice',
                                                    'chooseImage',
                                                    'previewImage',
                                                    'uploadImage',
                                                    'downloadImage',
                                                    'getNetworkType',
                                                    'openLocation',
                                                    'getLocation',
                                                    'hideOptionMenu',
                                                    'showOptionMenu',
                                                    'closeWindow',
                                                    'scanQRCode',
                                                    'chooseWXPay',
                                                    'openProductSpecificView',
                                                    'addCard',
                                                    'chooseCard',
                                                    'openCard'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                                    });
                                },
                                error: function () {
                                }
                            });

                            iError++;
                        }
                    });
                }
            },
            error: function (jqXHR, textStatus, errorThrown) {
                //alert(jqXHR.responseText);
            }
        });
    }   
}

function initShare(imgSrc, lineLink1, descContent1, shareTitle1) {
    if (isWeiXin()) {
        /*微信分享*/
        imgUrl = imgSrc;
        lineLink = lineLink1;
        descContent = descContent1;
        shareTitle = shareTitle1;

        if (lineLink.indexOf("token") == "-1") {
            $.ajax({
                type: "POST",
                url: "http://m.mycaigou.com/WeiXin/AjaxHandler.ashx?method=GetCurrentToken",
                async: false,
                success: function (result) {
                    if (lineLink1.indexOf("?") == "-1") {
                        lineLink1 += "?token=" + result;
                    } else {
                        lineLink1 += "&token=" + result;
                    }
                    initWxConfig(imgSrc, lineLink1, descContent1, shareTitle1);
                },
                error: function () {
                }
            });
        } else {
            initWxConfig(imgSrc, lineLink1, descContent1, shareTitle1);
        }
    }
}

/*
function shareFriend() {
    WeixinJSBridge.invoke('sendAppMessage', {
        "appid": appid,
        "img_url": imgUrl,
        "img_width": "640",
        "img_height": "640",
        "link": lineLink,
        "desc": descContent,
        "title": shareTitle
    }, function (res) {
        _report('send_msg', res.err_msg);
    })
}
function shareTimeline() {
    WeixinJSBridge.invoke('shareTimeline', {
        "img_url": imgUrl,
        "img_width": "640",
        "img_height": "640",
        "link": lineLink,
        "desc": descContent,
        "title": shareTitle
    }, function (res) {
        _report('timeline', res.err_msg);
    });
}
function shareWeibo() {
    WeixinJSBridge.invoke('shareWeibo', {
        "content": descContent,
        "url": lineLink,
    }, function (res) {
        _report('weibo', res.err_msg);
    });
}
// 当微信内置浏览器完成内部初始化后会触发WeixinJSBridgeReady事件。
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {

    // 发送给好友
    WeixinJSBridge.on('menu:share:appmessage', function (argv) {
        shareFriend();
        if($(".share_card").length>0)
        {
            $(".share_card").hide();
        }       
    });

    // 分享到朋友圈
    WeixinJSBridge.on('menu:share:timeline', function (argv) {
        shareTimeline();
        if ($(".share_card").length > 0) {
            $(".share_card").hide();
        }
    });

    // 分享到微博
    WeixinJSBridge.on('menu:share:weibo', function (argv) {
        shareWeibo();
        if ($(".share_card").length > 0) {
            $(".share_card").hide();
        }
    });
}, false);*/